var _ = {
  debounce (callback, t = 300) {
    var timer = null
    return function () {
      // console.log(arguments, '参数列表')
      clearTimeout(timer)
      // console.log(this, '这里的this指向的是谁？') // search这个元素
      timer = setTimeout(() => {
        // callback && callback.apply(this, arguments) // 这里是callback的调用 调用过程中传递的是实参
        callback && callback.call(this, ...arguments) // 这里是callback的调用 调用过程中传递的是实参
      }, t)
    }
  },
  throttle (callback, duration = 1000) {
    var startTime = 0
    return function () {
      var endTime = +new Date()
      if (endTime - startTime > duration) {
        // callback && callback.apply(this, arguments)
        callback && callback.call(this, ...arguments)
        startTime = endTime
      }
    }
  }
}
